package com.pureut.storage.service;

import com.pureut.storage.dto.*;
import com.pureut.storage.export.WipCompletionExport;
import com.pureut.storage.vo.PickingRestDbVo;
import com.pureut.storage.vo.WarehousInspectionVo;
import com.pureut.storage.vo.WipCompletionVo;
import com.sale.common.mybatis.core.page.PageQuery;
import com.sale.common.mybatis.core.page.TableDataInfo;
import com.sale.storage.api.dto.UpdateWipByAdjustmentVo;
import com.sale.storage.api.dto.WipCompletionMessageDto;

import java.util.List;

/***
 * 完工入库service
 * Author:C
 * Date:2022/12/30 11:54
 * @DESC
 */
public interface WipCompletionService {

    /**
     * 完工入库列表
     */
    TableDataInfo<WipCompletionDto> getReceiptList(WipCompletionVo wipCompletionVo, PageQuery pageQuery) throws Exception;

    /**
     * 新增
     */
    boolean addWipCompletion(WipCompletionVo wipCompletionVo) throws Exception;

    /**
     * 关结
     */
    boolean close(WipCompletionVo wipCompletionVo);

    /**
     * 查看
     */
    WipCompletionDto getView(Long id);

    /**
     * 修改
     */
    boolean updateWipCompletion(WipCompletionVo wipCompletionVo);

    /**
     * 删除
     */
    boolean deleteWipCompletion(String idStr);

    /**
     * 导出
     */
    List<WipCompletionExport> getInfoExport(WipCompletionVo wipCompletionVo);

//    /**
//     * 完工入库pda（自动生成）
//     */
//    PickingRestDbDto wipCompletionPda(PickingRestDbVo pickingRestDbVo) throws Exception;

    /**
     * 完工入库pda(手动生成)
     */
    PickingRestDbDto manualWipCompletionPda(PickingRestDbVo pickingRestDbVo) throws Exception;

    /**
     * 完工入库拣货撤销
     */
    boolean pickingCancellation(PickingRestDbVo pickingRestDbVo);

    /**
     * 完工入库拣货完成
     */
    boolean pickingCompleted(PickingRestDbVo pickingRestDbVo) throws Exception;

    /**
     * 完工入库入库打印
     */
    boolean wipPrinting(WarehousInspectionVo warehousInspectionVo) throws Exception;

    /**
     * 根据单据号获取完工入库信息（成本调整使用）
     */
    WipCompletionMessageDto getWipCompletionMessage(String documentNumber);

    /**
     * 修改完工入库信息（成本调整使用）
     */
    boolean updateWipByAdjustment(UpdateWipByAdjustmentVo updateWipByAdjustmentVo);

    /**
     * 获取完工入库单中的入库仓库(成本调整使用)
     */
    List<WarehouseInDto> getWarehouseIn();

    /**
     * 筛选的仓库单据为已完成或已关结的完工入库单(成本调整使用)
     */
    TableDataInfo<WipCompletionDto> screenDocument(WipCompletionVo wipCompletionVo, PageQuery pageQuery);

    /**
     * 根据物料编码获取采购入库及完工入库已完成、已关节状态单据信息
     */
    List<PrintDocumentDto> getPrintDocument(String materialCode);

//    /**
//     * 新增完工入库（其他模块调用）
//     */
//    boolean wipOtherAdd(WipOtherAddVo wipOtherAddVo) throws Exception;

//    /**
//     * 完工入库品质回传状态(fegin调用)
//     */
//    boolean updateStatusByQuality(UpdateStatusByQualityVo updateStatusByQualityVo);
//
//    /**
//     * 完工入库品质回传状态(品质处理fegin调用)
//     */
//    boolean wipCompletionQualityStatus(ReturnStatusVo returnStatusVo);
}
